#include "i2c.h"
#include "AT24C02.h"

/**
  * @brief  AT24C02发送一个字节
  * @param  Word_Address 为发送的位置。
  * @param	Data 为发送的数据。
  * @retval 无
  */
void AT24C02_SendByte(uint8_t Word_Address,uint8_t* Data,uint8_t len)
{
	HAL_I2C_Mem_Write_IT(&hi2c1,AT24C02_Address,Word_Address,I2C_MEMADD_SIZE_8BIT,Data,len);
	HAL_Delay(5);
}

/**
  * @brief  AT24C02获取一个字节
  * @param  Word_Address 为获取的位置。
  * @retval Data 为获取的数据。
  */
void AT24C02_ReadByte(uint8_t Word_Address,uint8_t* Data,uint8_t len)
{
	HAL_I2C_Mem_Read(&hi2c1,AT24C02_Address,Word_Address,I2C_MEMADD_SIZE_8BIT,Data,len,0xF00);
}

/*----------------------Test----------------------------*/
#include "display.h"
#include "ABS_key.h"
#include "myconfig.h"
My_StatusTypeDef EEPROMTest(int key_Num) {
  static uint8_t Data[2];
  static uint8_t i;
  AT24C02_ReadByte(0,Data,2);
  displayNum(Data[0],Display_firstCol+FONT.width,Display_firstRow);
  displayNum(Data[1],Display_firstCol+FONT.width,Display_secondRow);
  displayStr(">", Display_firstCol, Display_firstRow + i * Display_spaced,RED);
  displayStr(" ", Display_firstCol, Display_firstRow + (1-i) * Display_spaced,RED);
  if (key_Num == Key_ESC) {
    return MY_OK;
  } else if (key_Num == Key_Down) {
	Data[i]--;
	AT24C02_SendByte(0,Data,2);
  } else if (key_Num == Key_UP) {
	Data[i]++;
	AT24C02_SendByte(0,Data,2);
  } else if (key_Num == Key_OK) {
	i++;
	i%=2;
  }
  return MY_BUSY;
}